{{tag>Xenial programmation}}
----

====== Mercurial ( ou hg ) ======

Mercurial est un [[wpfr>logiciel de gestion de versions]] permettant en particulier la gestion de version décentralisée (comme [[bzr]] ou [[git]]). Il est disponible sur plusieurs plate-formes : systèmes Unix, Windows, Mac OS X.

===== Pré-requis =====
 
  * Disposer des [[:sudo|droits d'administration]].
  * Disposer d'une connexion à Internet configurée et activée.

===== Installation =====
[[:tutoriel:comment_installer_un_paquet|Installez le paquet]] **[[apt>mercurial]]**.

===== Configuration =====

Le fichier de configuration de Mercurial par défaut est localisé dans **/etc/mercurial/hgrc**. Il affecte tous les utilisateurs du poste et doit être édité avec les droits de super-utilisateur.

Vous pouvez cependant configurer Mercurial pour votre session uniquement en créant un fichier de configuration dans votre **Dossier Personnel**, nommé ~/.hgrc .Dans ce cas, vous n'avez pas besoin des droits de [[sudo|super-utilisateur]] pour éditer ce fichier.

[[:tutoriel:comment_modifier_un_fichier|Éditez le fichier]] le fichier de configuration **/etc/mercurial/hgrc** ou **editor ~/.hgrc** et placez-y ces informations :

<file>
# system-wide mercurial configuration file
# See hgrc(5) for more information

# User Interface settings
[ui]

username=Your Name <your.email@yourdomain.com>

editor=vim

merge=meld
</file>

Il faut modifier ce fichier à son gré.

Pour le merge [[:tutoriel:comment_installer_un_paquet|Installez le paquet]] **[[apt>meld]]**.

===== Utilisation =====

==== Pour initialiser le dossier dans lequel nous allons travailler : ====

<code>cd /chemin/du/project/</code>
<code>hg init</code>

==== Pour récupérer une copie des fichiers de travail s'il existe déjà dans ====


<code>hg clone http://votredomaine.com:port depot-du-projet</code>

"depot-du-projet" sert à spécifier le répertoire de destination des fichiers et dossiers qui seront téléchargés. Si aucune destination n'est spécifiée alors la destination aura le même nom que celle du répertoire du dépôt.

==== Pour prendre en compte des nouveaux fichiers dans le dépôt: ====


<code>hg add</code>

==== Pour enregistrer les changements effectués sur un fichier: ====


<code>hg commit</code>

Attention, il faut bien renseigner les changements sinon les modifications ne seront pas prises en compte.

==== Pour mettre les changements sur un dépôt distant: ====


<code>hg push http://votredomaine.com:port depot-du-projet</code>

"depot-du-projet" sert à spécifier le répertoire de destination des fichiers et dossiers qui seront téléchargés. Si aucune destination n'est spécifiée alors la destination aura le même nom que celle du répertoire du dépôt.

==== Pour récupérer les changements sur un dépôts distant: ====


<code>hg pull http://votredomaine.com:port depot-du-projet</code>

"depot-du-projet" sert à spécifier le répertoire de destination des fichiers et dossiers qui seront téléchargés. Si aucune destination n'est spécifiée alors la destination aura le même nom que celle du répertoire du dépôt.

==== Pour mettre à jour les sources (similaire à svn update ou cvs update) faites simplement : ====


<code>hg pull -u</code>


==== Pour fusionner les changements: ====


<code>hg merge</code>

<code>hg commit</code>

==== Pour créer un patch et exporter: ====


<code>hg commit</code>
<code>hg export tip</code>

==== Pour permettre l'export du dépôt via HTTP avec une interface navigable: ====


<code>hg serve -n "Mon depot" -p <numérodeport></code>
===== Voir aussi =====

Vous pouvez consulter les sites suivants pour obtenir un complément d'information...

  * **(en)** [[http://hginit.com|Initiation rapide et efficace à Mercurial]]

----

//Contributeurs : [[utilisateurs:pezzos]], [[utilisateurs:Fabien26]], [[utilisateurs:guigouz|Guigouz]]//